'''
None是什么
    1 与C和JAVA不同，python中是没有 NULL 的，取而代之的是 None 。
    2 None 是一个特殊的常量，表示变量没有指向任何对象。
    3 在Python中， None 本身实际上也是对象，有自己的类型 NoneType 。
    4 你可以将 None 赋值给任何变量，但我们不能创建 NoneType 类型的对象
'''
obj1 = None
obj2 = None
print(type(None))
print(id(None))
print(id(obj1))
print(id(obj2))

'''
⚠️None不是False，None不是0，None不是空字符串。None和任何其他的数据类型比较永远返回False。
'''
a = None
if a is None and a == None:
    print("a是None")  # 会执行
if a == False or a == 0:
    print("None不等于False")  # 不会被打印

'''
if语句判断时,空列表[]、空字典{}、空元组()、0等一系列代表空和无的对象会被转换成False
'''
a = []
b = ()
c = {}
d = ""
e = 0
f = None
if (not a) and (not b) and (not c) and (not d) and (not e) and (not f):
    print("if判断时，空列表[]、空字符串、0、None等代表空和无的对象会被转换成False")

'''
== 和 is 判断时，空列表、空字符串不会自动转成 False
'''
a = []
b = ()
c = {}
d = ""
e = 0
if (a == False or d == False):
    print("==时，空列表、空字符串不是False！")  # 不会执行
if (e == False):
    print("==时，0会转成False")
